package com.company.gobang.proto;

import xyz.noark.core.network.NetworkProtocol;

/**
 * 请求错误提示协议
 *
 * @author 小流氓[176543888@qq.com]
 */
public class ErrorCodePush extends AbstractAck {

    public ErrorCodePush(int mode, String msg) {
        this.setMode(mode);
        this.setMsg(msg);
    }

    /**
     * 创建一个正常的提示功能
     *
     * @param msg 提示的内容
     * @return 返回一个网络协议对象
     */
    public static NetworkProtocol createInfo(String msg) {
        return create(MsgType.S2C_MSG_TYPE_0, msg);
    }

    /**
     * 创建一个成功的提示功能
     *
     * @param msg 提示的内容
     * @return 返回一个网络协议对象
     */
    public static NetworkProtocol createSuccess(String msg) {
        return create(MsgType.S2C_MSG_TYPE_1, msg);
    }

    /**
     * 创建一个警告的提示功能
     *
     * @param msg 提示的内容
     * @return 返回一个网络协议对象
     */
    public static NetworkProtocol createWarn(String msg) {
        return create(MsgType.S2C_MSG_TYPE_2, msg);
    }


    private static NetworkProtocol create(int mode, String msg) {
        // 这里的Opcode无实际作用
        return new NetworkProtocol("ErrorCode", new ErrorCodePush(mode, msg));
    }
}
